The present invention relates generally to methods for filtering digital signals, and more particularly to a method which varies the filter length on a real-time basis.
Sequences of digital signals can be smoothed by means of digital filters. In the open-loop control of machine tools or robots, the discontinuous or digital setpoint velocity values calculated by a numerical control system are smoothed by a digital averaging filter in order to avoid sudden load changes on the driven axes. The quality of the smoothing process depends thereby on the filter length, that is on the number of velocity values that are averaged.
Often, filter lengths need to be adjusted to accommodate varying operating states of a machine-tool or robot axis to be controlled. For example, a robot's movement along a path requires a better smoothing process and consequently a greater filter length than does a point-to-point movement. It is presently possible to alter an active filter length when a numerically controlled machine is at a standstill, using conventional methods. For this purpose, the number of velocity values previously stored in the filter is converted by means of weighting functions into new velocity values, whose number differs from the number of previous velocity values. This means that the curve given by the previous velocity values is compressed or expanded.
However, it is very time-consuming to convert the velocity values and it cannot be done under real-time operating conditions. The present invention is directed to the problem of developing a method that enables the filter length of a digital filter to be changed on a real-time basis.